package com.logic.landseaserver.service;

import com.logic.landseaserver.common.exception.LandseaException;
import com.logic.landseaserver.ws.dto.CheckPayDTO;
import com.logic.landseaserver.ws.dto.WeBankPayCheckDTO;
import com.logic.landseaserver.ws.dto.WeBankPayDTO;
import com.logic.landseaserver.ws.dto.WeBankPayRespDTO;
import com.logic.landseaserver.ws.dto.WebankPayCallBackRequest;
import com.logic.landseaserver.ws.dto.WebankQRPayCallBackRequestWapper;
import com.logic.landseaserver.ws.dto.WebankQRPaymentNotify;

public interface IWeBankService{

	WeBankPayRespDTO getWeBankPayQR(WeBankPayDTO payinfo) throws Exception;

	String weBankCallback(WebankPayCallBackRequest callBackRequest) throws LandseaException, Exception;
	
	/**
	 * 
	 * [简要描述]：微众收单回调</br>
	 * [详细描述]：</br>
	 * [作者]：Aaron(2017-07-06)</br>
	 *
	 * @param webankQRPayCallBackRequestWapper
	 * @return
	 * @throws Exception
	 *
	 */
	String weBankQRCallback(WebankQRPayCallBackRequestWapper webankQRPayCallBackRequestWapper) throws LandseaException, Exception;

	WeBankPayRespDTO getWeBankPay(WeBankPayDTO payinfo) throws LandseaException, Exception;

	WeBankPayCheckDTO checkPay(CheckPayDTO payinfo) throws LandseaException, Exception;

	/**
	 * 
	 * [简要描述]：微众对账通知回调接口</br>
	 * [详细描述]：</br>
	 * [作者]：Aaron(2017-07-03)</br>
	 *
	 * @param callbackEvent
	 * @throws LandseaException
	 *
	 */
	void weBankReconciliation(WebankQRPaymentNotify callbackEvent) throws LandseaException;
}
